package com.tbit.uqbike.webmanager.dao.core;

import com.tbit.uqbike.object.pojo.Camera;
import com.tbit.uqbike.object.pojo.MachineFunction;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: chen
 * @Description: 设备功能绑定
 * @Date: 创建于 17:36 2020/6/2
 */
public interface MachineFunctionDao {

    /**
     * 分页查询
     *
     * @param map
     * @return
     */
    List<MachineFunction> queryPage(Map<String, Object> map);

    /**
     * 分页总数
     *
     * @param map
     * @return
     */
    Integer queryCount(Map<String, Object> map);

    /**
     * 批量添加
     *
     * @param list
     */
    void addBatch(List<MachineFunction> list);

    /**
     * 批量删除
     *
     * @param map
     */
    void delBatch(Map<String, Object> map);

    /**
     * 通过id获取是否存在
     *
     * @param map
     * @return
     */
    List<Integer> getByMachineIds(Map<String, Object> map);

    /**
     * 通过id获取是否存在
     *
     * @param map
     * @return
     */
    MachineFunction getByMachineId(Map<String, Object> map);

    /**
     * 查询某个区域开启指定功能类型的设备信息
     *
     * @param map
     * @return
     */
    List<MachineFunction> getByType(Map<String, Object> map);

    /**
     * 批量添加摄像头功能设备
     *
     * @param cameraList
     */
    void addCameraBatch(@Param("cameraList") List<Camera> cameraList);

    /**
     * 批量删除摄像头功能设备
     *
     * @param cameraList
     */
    void deleteCameraBatch(@Param("cameraMachineNoList") List<String> cameraList);

    /**
     * 删除已经不存在的头盔绑定关系
     */
    void deleteNotExistHelmetBound();

    /**
     * 删除已经不存在的头盔异常
     */
    void deleteNotExistHelmetAbnormal();
}
